package com.gxa.ssm251.service;

import com.gxa.ssm251.exception.BusinessException;
import com.gxa.ssm251.pojo.RedeemCode;

import java.util.List;


/**
 * 兑换码业务层
 * @author 舒空
 */
public interface RedeemCodeService {
    /**
     * 添加兑换码
     * @param redeemCode 兑换码实体类
     * @return 数据库执行行数
     * @throws BusinessException 抛给前端的异常处理
     */

    Integer addRedeemCode(RedeemCode redeemCode) throws BusinessException;

    /**
     * 添加兑换码使用范围
     * @param id 兑换码id
     * @param list 一张兑换码对应的使用范围id集合
     * @return 数据库影响行数
     */
    Integer addRcScope(Integer id, List<String> list);

    /**
     * 兑换码名字查找数据
     * @param name 兑换码名
     * @return 包含兑换码名的记录
     */
    RedeemCode selectByName(String name);

    /**
     * 分页全查询
     * @param page 需要显示的页数
     * @param size 每页显示几条数据
     * @return 分页逆序的list集合数据
     */
    List<RedeemCode> selectAllByPage(Integer page, Integer size);

    /**
     * 分页全查询
     * @return list集合数据
     */
    Integer selectRedeemCodeAll();

    /**
     * 通过id把数据回传给页面
     * @param rdcId 兑换码id
     * @return 返回id对应的数据
     */

    List<RedeemCode> selectById(Integer rdcId);

    /**
     * 删除兑换码
     * @param id  兑换码id
     * @return 数据库影响行数
     */
    Integer delete(Integer id);

    /**
     * 修改兑换码
     * @param redeemCode 兑换码实体类对象
     * @return 数据库影响的行数
     */
    Integer update(RedeemCode redeemCode);

    /**
     * 删除关系表为id的记录
     * @param rdcId 关联表的兑换码编号
     * @param list 关联表的使用范围编号集合
     * @return 数据库影响条数
     */
    Integer updateScope(Integer rdcId, List<String> list);


}
